package com.chrray.position.service.position;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.chrray.position.domain.dto.*;
import com.chrray.position.domain.vo.FdAuthEnterpriseVO;
import com.chrray.position.domain.vo.FdAuthPersonalVO;
import com.chrray.position.domain.vo.FdUserResumeVO;
import com.chrray.position.domain.vo.FdUserVO;
import com.chrray.position.domain.dto.search.FdUserSearch;
import com.chrray.position.domain.FdUser;

import java.util.List;

/**
 * 业务系统用户 接口
 *
 * @author wusiwee
 * @email wusiwee@163.com
 * @since 1.0.1 2024-08-07
 */
public interface FdUserService extends IService<FdUser> {

    /**
     * 分页查询
     * @param param 查询条件
     * @return 分页列表
     */
    IPage<FdUserVO> pageList(FdUserSearch param);

    /**
     * 详情
     * @param id 查询条件
     * @return 详情
    */
    FdUserVO info(Long id);

    /**
     * 新增
     * @param body 参数
     * @return 成功与否
     */
    Boolean saveOrUpdate(FdUserDTO body);

    /**
     * 批量删除
     * @param idList 主键列表
     */
    Boolean delete(List<Long> idList);

    void updateInformation(FdUserInformationDTO info);


    FdUserResumeVO getResume(Long userId);

    FdJobIntentionsDTO updateIntention(FdJobIntentionsDTO intention);

    FdEduExperienceDTO updateEduExp(FdEduExperienceDTO body);

    Boolean deleteEduExp(Long id);

    FdWorkExperienceDTO updateWorkExp(FdWorkExperienceDTO body);

    Boolean deleteWorkExp(Long id);

    FdUserCertDTO updateCertificate(FdUserCertDTO body);

    Boolean deleteCertificate(Long id);

    Boolean updateLifePhoto(LifePhotoDTO photo);

    FdAuthPersonalVO getPersonalAuthInfo(Long userId);

    FdAuthEnterpriseVO getEnterpriseAuthInfo(Long userId);

    FdUserSkillDTO updateSkill(FdUserSkillDTO body);

    Boolean deleteSkill(Long id);

    void updateLocation(LocationDTO location);
}
